/**
 * Joueur.java - Classe de base pour un joueur
 * 
 * @author BOURGE Denis && BEGORRE Alexandre
 * @version 1.0
 */

package jeu;

import elements.jetons.Rack;

public class Joueur {

	protected static int	joueursCourants	= 0;
	protected int			numero;
	protected String		nom;
	protected Rack			rack;
	protected int			score;
	protected boolean		abandonne;

	/**
	 * Constructeur par défaut du joueur
	 */
	public Joueur() {

		numero = joueursCourants;
		joueursCourants++;

		nom = "Joueur";

		abandonne = false;
		score = 0;
		rack = new Rack();
	}

	/**
	 * Constructeur avec le nom du joueur
	 * 
	 * @param nomJoueur
	 *            Nom du joueur
	 */
	public Joueur(String nomJoueur) {

		numero = joueursCourants;
		joueursCourants++;

		nom = nomJoueur;

		rack = new Rack();
	}

	/**
	 * Retourne le numéro du joueur
	 * 
	 * @return Le numéro du joueur
	 */
	public int getNumero() {

		return numero;
	}

	/**
	 * Retourne le nom du joueur
	 * 
	 * @return Le nom du joueur
	 */
	public String getNom() {

		return nom;
	}

	/**
	 * Retourne le score du joueur
	 * 
	 * @return Le score du joueur
	 */
	public int getScore() {

		return score;
	}

	/**
	 * Ajoute des points au score du joueur
	 * 
	 * @param score
	 *            Les poitns à ajouter
	 */
	public void ajouterScore(int score) {

		this.score += score;
	}

	/**
	 * Retourne le rack du joueur
	 * 
	 * @return Le rack du joueur
	 */
	public Rack prendreRack() {

		return rack;
	}

	/**
	 * Abandonne la partie (ou non)
	 * 
	 * @param ab
	 *            Choix
	 */
	public void abandon(boolean ab) {

		abandonne = ab;
	}

	/**
	 * Teste si le joueur a abandonné
	 * 
	 * @return Oui/Non
	 */
	public boolean aAbandonne() {

		return abandonne;
	}
}
